/**
 * 这道题和2020年真题异曲同工
 * 使用三个下标从小到大遍历三个数组。当三个下标指向的元素相等时，输出并停止向前推进
 * 否则，仅移动小于最大元素的下标变量，直到某个下标变量移出数组范围，即可停止
 * 
 * 注意：这样做的前提是，数组有序
 * 
 * 时间复杂度O(n)
 * 空间复杂度O(1)
 */

/**
 * @param n 三个数组的长度是相同的
 */
void sameKey(int a[],int b[],int c[],int n){
    int i=0,j=0,k=0;
    while (i<n&&j<n&&k<n)
    {
        if(a[i]==b[j]==c[k]){//相同的时候，还需要往后找，相同的key可能不是一个
            printf("%d\n",a[i]);
            i++;j++;k++;
        }else{
            int maxNum=max(a[i],max(b[j],c[k]));
            if(a[i]<maxNum)i++;
            if(b[j]<maxNum)j++;
            if(c[k]<maxNum)k++;
        }
    }
    
}